package com.learning.rpc.rpc.protocol;

import com.learning.rpc.rpc.Invoker;

import java.net.URI;

/**
 * ClassName: Protocol
 * Description: 协议定义接口
 * Date: 2022/5/16 17:19 【需求编号】
 *
 * @author Sam Sho
 * @version V1.0.0
 */
public interface Protocol {
    /**
     * 暴露服务
     *
     * @param uri     协议名称://IP:port/service全类名?参数名称=参数值&参数名称=参数值
     * @param invoker 代理对象
     */
    void export(URI uri, Invoker invoker);

    /**
     * 获取一个协议所对应的 Invoker
     *
     * @param uri
     * @return
     */
    Invoker refer(URI uri);
}
